#------------- User Settings -------------

visible E87W1 = 1 #set to 1 if E87W1 = Y or Y1. Set to 0 if E87W1 = N.
visible E87W2 = 1 #set to 1 if E87W2 = Y or Y1. Set to 0 if E87W2 = N.
visible E87W3 = 0 #set to 1 if E87W3 = Y or Y1. Set to 0 if E87W3 = N.

visible W1CTC = 0 #define compensation matrix setting for winding 1
visible W2CTC = 1 #define compensation matrix setting for winding 2
visible W3CTC = 0 #define compensation matrix setting for winding 3

visible TAP1 = 2.09  #define TAP for winding 1
visible TAP2 = 1.74  #define TAP for winding 2
visible TAP3 = 0.001 #define TAP for winding 3

#------------ Definitions ------------

mw1=W1CTC
mw2=W2CTC
mw3=W3CTC

#WINDING 1

scale1 = (mw1=0)*1 + ((mw1=1)+(mw1=3)+(mw1=5)+(mw1=7)+(mw1=9)+(mw1=11))*(1/sqrt(3)) + ((mw1=2)+(mw1=4)+(mw1=6)+(mw1=8)+(mw1=10)+(mw1=12))*(1/3)

I1W1_coeff1 = ((-2)*(mw1=6)) + ((-1)*((mw1=4)+(mw1=5)+(mw1=7)+(mw1=8))) + ((1)*((mw1=0)+(mw1=1)+(mw1=2)+(mw1=10)+(mw1=11))) + ((2)*(mw1=12))
I1W1_coeff2 = ((-2)*(mw1=2)) + ((-1)*((mw1=1)+(mw1=3)+(mw1=4)+(mw1=12))) + ((1)*((mw1=6)+(mw1=7)+(mw1=9)+(mw1=10))) + ((2)*(mw1=8))
I1W1_coeff3 = ((-2)*(mw1=10)) + ((-1)*((mw1=8)+(mw1=9)+(mw1=11)+(mw1=12))) + ((1)*((mw1=2)+(mw1=3)+(mw1=5)+(mw1=6))) + ((2)*(mw1=4))
I1W1C = scale1*(I1W1_coeff1*IAW1.phasor+I1W1_coeff2*IBW1.phasor+I1W1_coeff3*ICW1.phasor)*(1/(TAP1)) 

I2W1_coeff1 = ((-2)*(mw1=10)) + ((-1)*((mw1=8)+(mw1=9)+(mw1=11)+(mw1=12))) + ((1)*((mw1=2)+(mw1=3)+(mw1=5)+(mw1=6))) + ((2)*(mw1=4))
I2W1_coeff2 = ((-2)*(mw1=6)) + ((-1)*((mw1=4)+(mw1=5)+(mw1=7)+(mw1=8))) + ((1)*((mw1=0)+(mw1=1)+(mw1=2)+(mw1=10)+(mw1=11))) + ((2)*(mw1=12))
I2W1_coeff3 = ((-2)*(mw1=2)) + ((-1)*((mw1=1)+(mw1=3)+(mw1=4)+(mw1=12))) + ((1)*((mw1=6)+(mw1=7)+(mw1=9)+(mw1=10))) + ((2)*(mw1=8))
I2W1C = scale1*(I2W1_coeff1*IAW1.phasor+I2W1_coeff2*IBW1.phasor+I2W1_coeff3*ICW1.phasor)*(1/(TAP1)) 

I3W1_coeff1 = ((-2)*(mw1=2)) + ((-1)*((mw1=1)+(mw1=3)+(mw1=4)+(mw1=12))) + ((1)*((mw1=6)+(mw1=7)+(mw1=9)+(mw1=10))) + ((2)*(mw1=8))
I3W1_coeff2 = ((-2)*(mw1=10)) + ((-1)*((mw1=8)+(mw1=9)+(mw1=11)+(mw1=12))) + ((1)*((mw1=2)+(mw1=3)+(mw1=5)+(mw1=6))) + ((2)*(mw1=4))
I3W1_coeff3 = ((-2)*(mw1=6)) + ((-1)*((mw1=4)+(mw1=5)+(mw1=7)+(mw1=8))) + ((1)*((mw1=0)+(mw1=1)+(mw1=2)+(mw1=10)+(mw1=11))) + ((2)*(mw1=12))
I3W1C = scale1*(I3W1_coeff1*IAW1.phasor+I3W1_coeff2*IBW1.phasor+I3W1_coeff3*ICW1.phasor)*(1/(TAP1)) 

#WINDING 2

scale2 = (mw2=0)*1 + ((mw2=1)+(mw2=3)+(mw2=5)+(mw2=7)+(mw2=9)+(mw2=11))*(1/sqrt(3)) + ((mw2=2)+(mw2=4)+(mw2=6)+(mw2=8)+(mw2=10)+(mw2=12))*(1/3)

I1W2_coeff1 = ((-2)*(mw2=6)) + ((-1)*((mw2=4)+(mw2=5)+(mw2=7)+(mw2=8))) + ((1)*((mw2=0)+(mw2=1)+(mw2=2)+(mw2=10)+(mw2=11))) + ((2)*(mw2=12))
I1W2_coeff2 = ((-2)*(mw2=2)) + ((-1)*((mw2=1)+(mw2=3)+(mw2=4)+(mw2=12))) + ((1)*((mw2=6)+(mw2=7)+(mw2=9)+(mw2=10))) + ((2)*(mw2=8))
I1W2_coeff3 = ((-2)*(mw2=10)) + ((-1)*((mw2=8)+(mw2=9)+(mw2=11)+(mw2=12))) + ((1)*((mw2=2)+(mw2=3)+(mw2=5)+(mw2=6))) + ((2)*(mw2=4))
I1W2C = scale2*(I1W2_coeff1*IAW2.phasor+I1W2_coeff2*IBW2.phasor+I1W2_coeff3*ICW2.phasor)*(1/(TAP2)) 

I2W2_coeff1 = ((-2)*(mw2=10)) + ((-1)*((mw2=8)+(mw2=9)+(mw2=11)+(mw2=12))) + ((1)*((mw2=2)+(mw2=3)+(mw2=5)+(mw2=6))) + ((2)*(mw2=4))
I2W2_coeff2 = ((-2)*(mw2=6)) + ((-1)*((mw2=4)+(mw2=5)+(mw2=7)+(mw2=8))) + ((1)*((mw2=0)+(mw2=1)+(mw2=2)+(mw2=10)+(mw2=11))) + ((2)*(mw2=12))
I2W2_coeff3 = ((-2)*(mw2=2)) + ((-1)*((mw2=1)+(mw2=3)+(mw2=4)+(mw2=12))) + ((1)*((mw2=6)+(mw2=7)+(mw2=9)+(mw2=10))) + ((2)*(mw2=8))
I2W2C = scale2*(I2W2_coeff1*IAW2.phasor+I2W2_coeff2*IBW2.phasor+I2W2_coeff3*ICW2.phasor)*(1/(TAP2)) 

I3W2_coeff1 = ((-2)*(mw2=2)) + ((-1)*((mw2=1)+(mw2=3)+(mw2=4)+(mw2=12))) + ((1)*((mw2=6)+(mw2=7)+(mw2=9)+(mw2=10))) + ((2)*(mw2=8))
I3W2_coeff2 = ((-2)*(mw2=10)) + ((-1)*((mw2=8)+(mw2=9)+(mw2=11)+(mw2=12))) + ((1)*((mw2=2)+(mw2=3)+(mw2=5)+(mw2=6))) + ((2)*(mw2=4))
I3W2_coeff3 = ((-2)*(mw2=6)) + ((-1)*((mw2=4)+(mw2=5)+(mw2=7)+(mw2=8))) + ((1)*((mw2=0)+(mw2=1)+(mw2=2)+(mw2=10)+(mw2=11))) + ((2)*(mw2=12))
I3W2C = scale2*(I3W2_coeff1*IAW2.phasor+I3W2_coeff2*IBW2.phasor+I3W2_coeff3*ICW2.phasor)*(1/(TAP2)) 

#WINDING 3

scale3 = (mw3=0)*1 + ((mw3=1)+(mw3=3)+(mw3=5)+(mw3=7)+(mw3=9)+(mw3=11))*(1/sqrt(3)) + ((mw3=2)+(mw3=4)+(mw3=6)+(mw3=8)+(mw3=10)+(mw3=12))*(1/3)

I1W3_coeff1 = ((-2)*(mw3=6)) + ((-1)*((mw3=4)+(mw3=5)+(mw3=7)+(mw3=8))) + ((1)*((mw3=0)+(mw3=1)+(mw3=2)+(mw3=10)+(mw3=11))) + ((2)*(mw3=12))
I1W3_coeff2 = ((-2)*(mw3=2)) + ((-1)*((mw3=1)+(mw3=3)+(mw3=4)+(mw3=12))) + ((1)*((mw3=6)+(mw3=7)+(mw3=9)+(mw3=10))) + ((2)*(mw3=8))
I1W3_coeff3 = ((-2)*(mw3=10)) + ((-1)*((mw3=8)+(mw3=9)+(mw3=11)+(mw3=12))) + ((1)*((mw3=2)+(mw3=3)+(mw3=5)+(mw3=6))) + ((2)*(mw3=4))
I1W3C = scale3*(I1W3_coeff1*IAW3.phasor+I1W3_coeff2*IBW3.phasor+I1W3_coeff3*ICW3.phasor)*(1/(TAP3)) 

I2W3_coeff1 = ((-2)*(mw3=10)) + ((-1)*((mw3=8)+(mw3=9)+(mw3=11)+(mw3=12))) + ((1)*((mw3=2)+(mw3=3)+(mw3=5)+(mw3=6))) + ((2)*(mw3=4))
I2W3_coeff2 = ((-2)*(mw3=6)) + ((-1)*((mw3=4)+(mw3=5)+(mw3=7)+(mw3=8))) + ((1)*((mw3=0)+(mw3=1)+(mw3=2)+(mw3=10)+(mw3=11))) + ((2)*(mw3=12))
I2W3_coeff3 = ((-2)*(mw3=2)) + ((-1)*((mw3=1)+(mw3=3)+(mw3=4)+(mw3=12))) + ((1)*((mw3=6)+(mw3=7)+(mw3=9)+(mw3=10))) + ((2)*(mw3=8))
I2W3C = scale3*(I2W3_coeff1*IAW3.phasor+I2W3_coeff2*IBW3.phasor+I2W3_coeff3*ICW3.phasor)*(1/(TAP3)) 

I3W3_coeff1 = ((-2)*(mw3=2)) + ((-1)*((mw3=1)+(mw3=3)+(mw3=4)+(mw3=12))) + ((1)*((mw3=6)+(mw3=7)+(mw3=9)+(mw3=10))) + ((2)*(mw3=8))
I3W3_coeff2 = ((-2)*(mw3=10)) + ((-1)*((mw3=8)+(mw3=9)+(mw3=11)+(mw3=12))) + ((1)*((mw3=2)+(mw3=3)+(mw3=5)+(mw3=6))) + ((2)*(mw3=4))
I3W3_coeff3 = ((-2)*(mw3=6)) + ((-1)*((mw3=4)+(mw3=5)+(mw3=7)+(mw3=8))) + ((1)*((mw3=0)+(mw3=1)+(mw3=2)+(mw3=10)+(mw3=11))) + ((2)*(mw3=12))
I3W3C = scale3*(I3W3_coeff1*IAW3.phasor+I3W3_coeff2*IBW3.phasor+I3W3_coeff3*ICW3.phasor)*(1/(TAP3)) 


IRT1 = (mag(I1W1C)*E87W1+mag(I1W2C)*E87W2+mag(I1W3C)*E87W3)/2
IRT2 = (mag(I2W1C)*E87W1+mag(I2W2C)*E87W2+mag(I2W3C)*E87W3)/2
IRT3 = (mag(I3W1C)*E87W1+mag(I3W2C)*E87W2+mag(I3W3C)*E87W3)/2
IOP1 = mag(I1W1C*E87W1+I1W2C*E87W2+I1W3C*E87W3)
IOP2 = mag(I2W1C*E87W1+I2W2C*E87W2+I2W3C*E87W3)
IOP3 = mag(I3W1C*E87W1+I3W2C*E87W2+I3W3C*E87W3)